1. Technical Field
The present invention is generally directed to a median filter and, more particularly, to a filter and median filtering method that is suitable for use in high data rate systems such as detecting misfire of internal combustion engines.
2. Description
Numerous types of median filters are known in the art and used in a variety of applications to identify instantaneous deviations from historical norms. In the context of misfire detection systems, median filters filter out unwanted signal patterns from the crankshaft accelerations. A variety of factors other than cylinder firing impact crankshaft acceleration. For example, the crankshaft undergoes periodic characteristic angular accelerations due to mass imbalances, reciprocating masses, torsional vibrations and shaft flex caused by normal engine dynamics. A median filter isolates these and other engine transient effects by subtracting a median acceleration over a series of surrounding cylinder firings from the acceleration calculated for the particular firing interval of interest. By filtering out these characteristic accelerations, median filters remove the longer term acceleration effects and provide the misfire detection system with an increased signal-to-noise ratio of the characteristic firing event acceleration so as to enhance detection of any misfire event.
During normal engine operation, the engine crankshaft experiences a characteristic acceleration as a result of each cylinder firing event. Conventional misfire detection systems continuously monitor the angular acceleration of the crankshaft to detect misfire events. A toothed wheel is fixed to rotate with the crankshaft. A sensor tracks the passing of the wheel and communicates with a clock.
A misfire event occurs when the air/fuel vapor fails to ignite and combust in the cylinder. Misfire events may result in unburned fuel being pumped into the exhaust system causing increased pollution, damage to the catalyst, and degradation of engine performance. As the demands on vehicle control systems increase, so does the need to reduce the computational demands of the misfire detection system without unduly sacrificing reliability or response time.
The suitability of a particular type median filter depends, in part, on the data rate at which the system receives new data entries, the desired response time of the system, and the computational robustness of the system. Software implemented misfire detection systems are commonly used for low data rate (LDR) systems which monitor cylinder firing events. As used herein, LDR means that there is one or at most two time period samples per cylinder firing event from which an acceleration value will be calculated. For example, in a four cylinder engine where the system tracks the passing of every ninth tooth on the crankshaft wheel, a linked list approach has historically been used to maintain a magnitude sorted list of the measured acceleration values for median determination. In general, a linked list maintains a set of data items and pointers for each data item. The pointers point to the date entries that are previous and next in magnitude. For a list of N values, a linked list approach may require as many as N software looping comparisons to find the deletion position for the oldest measured value and an additional N software looping comparisons to identify the insertion position of the new measured value in the magnitude ordered list. This conventional technique is costly in terms of processor clock cycles. For example, a conventional linked list algorithm approach for median filtering takes about 600 clock cycles to sort a list of 39 elements. Thus, the suitability of a linked list median filtering decreases as the computational intensity of the system increases. Accordingly, the use of software implemented misfire detection systems with linked list median filtering has been limited to LDR applications.
In high data rate (HDR) systems, multiple time period samples per cylinder are used to determine the acceleration associated with a cylinder's firing event. When using a 36-1 toothed wheel and measuring every other tooth, a six cylinder engine would have 6 time period samples per cylinder firing event and an eight cylinder engine would alternately have 4 or 5 time period samples per cylinder firing event. The use of multiple time period samples per cylinder firing event greatly increases the computational intensity of HDR systems and have led those in the art to resort to a hardware implementation. In such systems, a BSPA (Bus-Based Signal Processing ASIC) receives sensor input from the toothed wheel (e.g., a 36-1 tooth wheel) on the crankshaft and performs calculations before outputting median acceleration values to the main CPU. More particularly, the BSPA receives an analog CPS signal from the crankshaft sensor, digitizes and captures the period of this signal, and multiplies the signal by a correction factor to account for manufacturing imperfections in the 36-1 tooth wheel. The corrected delta times provide degrees of rotation of the crankshaft and are inverted and scaled by the BSPA to provide angular velocity. The BSPA then filters out torsional vibrations using a low pass filter, processes the filtered velocity to convert it to scaled acceleration, and then high pass filters the scaled acceleration using a median filter to remove low frequency accelerations caused by normal engine dynamics. The BSPA then further filters the acceleration using pattern cancellation to remove signals due to crankshaft twist and cylinder imbalance as well as any repeating misfire signals so the accelerations both before and after the pattern cancellation provide detection of repetitive and intermittent misfire events. The BSPA also performs a windowed peak detection process on the accelerations to reduce the values to the smallest, that is, the most negative acceleration value detected within a window of samples taken near each cylinder event.